local desc = [[
# 国际象棋

国际象棋是一种盛行于世界的棋类游戏，其起源于波斯象棋，而波斯象棋则被认为由印度的恰兰图卡演化而来。

国际象棋的一方执白，另一方执黑。颜色的选择可以用投掷硬币的方法，如果没有硬币，则一方把不同颜色的两个棋子用手捂住，让另外一方选择颜色。

棋局开始后由白棋先行，之后双方轮流行棋，直到对局结束。

___

## 基本规则：

一方玩家的棋子不能占据自己的棋子的位置。
如果一个棋子移动到并占据了敌方的棋子，那么后者就要从棋盘中移走，由前者代替。被移走的棋子称被吃掉。
除了马，任何棋子都不能越过其他棋子。
玩家不能令自己的王陷入被将死的局面。
这些基本规则外还有例外，在下文将一一列明，如一方玩家可以在同一轮移动两步并且跨越己方棋子（王车易位），一方兵吃掉另一方兵但不是占据它的位置（吃过路兵）或者一方兵变成了除自己和王的另一角色（兵的升变）。
___

## 棋盘

国际象棋的棋盘为正方形，由32个黑色和32个白色方格交替排列组成。每边8个方格。摆放棋盘时要使每位棋手的右下角为白格。

其中要注意：

- 白棋应摆在棋盘的第1、2行，黑棋应摆在棋盘的第7、8行。
- 王所在的格的颜色与王自身的颜色不同。

___

## 棋子
### 国王

国王（King）是整个棋局中最为重要的棋子，可横走、直走或斜走。每次可以朝每个方向前进一格。王所走到的位置不可有对方棋子的威胁，否则会被视为“违规移动”。其吃子与走法相同。

如果一方的王被对方捉吃（称为被“将军（check）”），该方必须首先解除此威胁（称为“应将”），可用其他棋子截断攻王的路径（俗称“垫将”）、吃掉攻王的棋子（俗称“消将”）或是离开被攻击的位置（俗称“避将”）。

王被将军而无法化解，称为被“将死（checkmate）”。国际象棋以将死对方为目标，被将死的一方作负。

### 皇后

皇后（Queen）是威力最强的棋子，可横走、直走或斜走，移动步数不限，但不可转向或越过其他棋子。其吃子与走法相同。

### 车（城堡）

与中国象棋的车相同，车（Rook）的走法是横走或直走，格数不限，但不可斜走或越过其他棋子。其吃子与走法相同。

### 象（教皇）

象（Bishop）只可斜走，格数不限，但不可转向或越过其他棋子。因此白格象只能在白格走动，黑格象只能在黑格走动。每局开始时，每一方有双象，一在黑格，一在白格。

### 马（骑士）

马（Knight）与中国象棋中走法相似，呈“日”字型或“L”字型，但没有“绊马脚”的限制，即先沿横线或直线走一格，然后沿斜线离原格方向一格，在走第一格时即使该格已有棋子占据也仍可行走，在走第二格时有棋子，则能吃掉该棋子。马是唯一能够越子的棋子。

### 兵

兵（Pawn）的第一步可前进一格或两格，以后每次只能前进一格，不可后退。

兵的吃子方法与走法不同，只能吃掉斜前方一格的棋子，并落在该格，故同一纵列的双方兵互相构成阻碍。

___

## 特殊着法

### 兵的升变

一方的兵从起始位置移动到对方的最后一行（底线）后，可升变（promote）为己方除王和兵之外的任何棋子。升变的棋子种类由棋手自由选择，不受棋盘上现有棋子的限制。

### 王车易位

王车易位（castling）是一方王和车的位置调整。调整王翼的车叫王翼易位（短易位），调整后翼的车叫后翼易位（长易位）。走法是将王向参与易位的车方向移动两格，再将车越过王，放在紧邻王的一格。

王车易位时应先移动王，否则若先移动车，根据“摸子走子”的原则将不能再进行易位。

有以下情形之一时，王车不得易位：

王或参与易位的车以前曾移动过（无论是否回到了原来的位置）

- 王正在被将军

- 易位时王要经过的格正受到对方的进攻

- 易位后王将占据的格正受到对方的进攻

- 王与参与易位的车之间有其他棋子阻隔

### 吃过路兵

当一方的兵从原始位置向前一步走两格时，如果所到格同一横线的相邻格有对方的兵，则后者可以立即吃掉相邻的前者，并落在原来位置斜前方、前者的后一格内（换言之，后者此时可认为前者只行进了一格，从而直接斜进将其吃掉），此走法称为“吃过路兵（en passant）”。“吃过路兵”必须立即进行，缓着后无效。

___

## 游戏的完结

### 有以下情形之一时，判该方作负：

- 一方的王被将死。

- 比赛中，一方用完时间（有两个例外）。

- 一方认输（通常是因为该方的王走投无路，或该方已看出自己败势已定）。

- 一方退出游戏，等同认输。

### 有以下情形之一时，判双方和棋：

双方同意和局。提议作和者要等对方完成其步，和议被接受后不得反悔。

- 双方均没有足够的棋子在有限步数内将死对方。

- 比赛中，双方均用完时间。

- 一方用完时间，但对方在有限步数内没有足够的棋子将死该方。

- 行棋的一方在未被将军的情况下无子可动（称为“逼和（stalemate）”）

- 在连续的50个回合内，双方没有吃子也没有移动过兵。

- 下一步之前，同样的局面出现或即将出现三次或以上。

___

## 礼仪

通常，在国际象棋的比赛中，参赛者都要符合以下规则（即使这是一个线上游戏，但了解其线下的礼仪同样也是棋类运动的内容，用于展示自己对对手和运动本身的尊重）：

- 摸子走子（Touch move）：如果一方触摸了自己的棋子，就必须要移动该棋子（除非无法移动），若触摸对方的棋子，就必须吃掉该棋子（除非不能吃掉）。如果释放一个棋子，就完成移动，不能反悔。如果需要摆正棋子的位置，要说“摆棋”或“摆子”等，向对方示意。

- 摆正棋子、提议作和等应在自己的行棋时间内进行，对方思考时应当保持安静，不得打扰。


]]

local mode = fk.CreateGameMode {
  name = "nchess",
  minPlayer = 2,
  maxPlayer = 2,

  surrender_func = function (self, playedTime)
    return {{ text = "投子认负（十回合后可用）" , passed = Fk:currentRoom():getBanner("RoundCount") > 10}}
  end,
  winner_getter = function(self, victim)
    if not victim.surrendered then
      return ""
    end

    return victim.next.role .. "+s"
  end,
}
mode.game_name = "nchess"

Fk:loadTranslationTable {
  ["nchess"] = "国际象棋",
  [":nchess"] = desc,
}

return mode
